1
コンピュータサイエンスの本質:アルゴリズム、プログラミング、抽象化の力
AI028Lesson 1
00:00

コンピュータサイエンスの本質は、コンピュータそのものではなく、「問題解決(Problem Solving)」を研究する学問である。それは現実世界の複雑で混沌とした状況を、正確な論理ステップに変換する芸術である。

n(入力)sqrt()√n(出力)図 1-1 プロセス抽象:ブラックボックス視点

三大核となる柱

  • アルゴリズム(Algorithm):問題解決の魂である。有限のステップを持つプロセスであり、ある問題が計算可能(Computable)かどうかを決定する。
  • プログラミング(Programming):アルゴリズムをコンピュータが理解できる言語(例:Python)に「翻訳」するプロセスであり、論理的な抽象と物理的な実装を結ぶ橋である。
  • プロセス抽象(Procedural Abstraction):複雑性を管理する究極の武器である。実装の詳細を「ブラックボックス」の内部に封印することで、プログラマーは「何をすべきか」にのみ注目し、「どうやるか」を無視できる。
ユーザー(User)インターフェース(Interface)実装操作図 1-2 抽象の階層構造
プログラマーのブラックボックス哲学
あなたが math.sqrt(16) を呼び出すとき、内部でニュートン法を使うのか二分探索を使うのかを知らなくてもよい。この「不要な細部を無視する」能力こそ、大規模なソフトウェアシステムを構築する上で中心となる。これこそが抽象データ型(ADT) の思想の原型である。データの論理的表現と物理的実装を完全に分離する。